package org.jeecg.common.util;

import net.sf.jsqlparser.expression.StringValue;
import org.jeecg.common.system.vo.LoginUser;

public class TenantUtil {

    public static StringValue get(){
        // 从当前系统上下文中取出当前请求的内码，通过解析器注入到SQL中。
        String tenantId = null;
        String token = SpringContextUtils.getHttpServletRequest().getHeader("X-Access-Token");
        if (token!=null){
            LoginUser user = SsoUtil.getLoginUser();
            if (user==null) return null;
            tenantId = user.getTenantId();
        }else{
            String strTenantId = SpringContextUtils.getHttpServletRequest().getHeader("tenantId");
            if (strTenantId != null){
                tenantId = strTenantId;
            }  else {
                String strTenantId2 = (String)SpringContextUtils.getHttpServletRequest().getAttribute("tenantId");
                if (strTenantId2 != null){
                    tenantId = strTenantId2;
                }
            }
        }
        if (null == tenantId) {
             throw new RuntimeException("从当前系统上下文中取出当前请求的内码为空。");
        }
        return new StringValue(tenantId);
    }
}
